package com.qjjia.springcloud.apigateway.config;

import org.springframework.cloud.gateway.route.RouteLocator;
import org.springframework.cloud.gateway.route.builder.RouteLocatorBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * Description:
 *
 * @author JourWon
 * @date 2019/12/22 19:01
 *
 * 两种不同的配置路由方式
 * Gateway 提供了两种不同的方式用于配置路由，一种是通过yml文件来配置，另一种是通过Java Bean来配置，下面我们分别介绍下。
 *
 */
@Configuration//配置类
public class GatewayConfig {

    /**
     * 使用Java Bean配置
     * 添加相关配置类，并配置一个RouteLocator对象：
     * @param builder
     * @return
     */
    @Bean
    public RouteLocator customerRouteLocator(RouteLocatorBuilder builder) {
        return builder.routes()
                .route("path_route2", r -> r.path("/user/getByUsername")
                        .uri("http://localhost:8201/user/getByUsername"))
                .build();
    }
//    重新启动api-gateway服务，并调用该地址测试：http://localhost:9201/user/getByUsername?username=jourwon
//
//    我们发现该请求被路由到了user-service的该路径上：http://localhost:8201/user/getByUsername?username=jourwon


}
